home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Games Machine 76
/
XENIATGM66.iso
/
Indiana Jones
/
Indiana Jones.exe
/
RESOURCE
/
PREVIEW.GOB
/
cog_sol_horusdoors.cog
< prev
next >
Wrap
Text File
|
1999-11-15
|
7KB
|
260 lines
# Jones 3D Cog Script
#
# SOL_HorusDoors.cog
#
# [TRM]
#
# (C) 1999 LucasArts Entertainment Co. All Rights Reserved
# ========================================================================================
symbols
message startup
message entered
message activated
message blocked
thing player local
thing doorL
thing doorR
thing horus_Cam1
sector doorSector
surface open
surface close
surface inside
surface openInside
sound sndOpen=sol_cardoor_open_c.wav local
sound sndClose=sol_cardoor_close_c.wav local
# ** voice lines **
sound in_Line0=Pr15j02.wav local # The fire door only opens...
sound in_Line1=Inxj096.wav local # I can't open it.
sound fireSafety=pr15j01.wav local # Horner must have been worried...
cog cog_ChaseLower
int doorsOpen=0 local
int doorsMoving=0 local
int sender local
int car local
int newComment local
int oldComment local
int playing=0 local
int count=0 local
int done=0 local
int in_Cut=0 local
# ** subroutines **
flex doorLine local
flex openDoors local
flex closeDoors local
end
# ========================================================================================
code
startup:
SectorAdjoins(doorSector, 0);
SetThingLight(doorL, '0.3 0.3 0.35', 0.001, 2.0);
SetThingLight(doorR, '0.3 0.3 0.35', 0.001, 2.0);
return;
# ========================================================================================
entered:
player = GetLocalPlayerThing();
sender = GetSenderRef();
car = GetSourceRef();
if((BitTest(GetPhysicsFlags(car), 0x01000000)) && (doorsMoving == 0))
{
if((sender == open) && (doorsOpen == 0))
{
in_Cut = 1;
# do cutscene stuff
StartCutscene(0);
SetActorFlags(player, 0x200000);
# add some thrust to player
SetThingThrust(player, '0.0 -0.75 0.0');
# switch to horus_Cam1
SetCameraFocus(2, horus_Cam1);
SetCameraSecondaryFocus(2, player);
SetCurrentCamera(2);
SetCameraFOV(90, 0, 0.0);
Call openDoors;
}
if((sender == inside) && (done == 0))
{
done = 1;
in_Cut = 0;
# Reset the camera
SetCameraPosition(1, GetThingPos(horus_Cam1));
SetCurrentCamera(1);
StopThing(player);
ClearActorFlags(player, 0x200000);
EndCutscene();
# tell chaseLower we're go
SendMessage(cog_ChaseLower, user2);
}
if((sender == openInside) && (done == 1) && (doorsOpen == 0))
{
Call openDoors;
}
if((sender == openInside) && (in_Cut == 1) && (done == 0))
{
Call closeDoors;
}
if((sender == close) && (doorsOpen == 1))
{
Call closeDoors;
done = 0;
}
}
return;
# ========================================================================================
activated:
player = GetLocalPlayerThing();
while (newComment == oldComment)
{
newComment = RandBetween(0, 1);
}
oldComment = newComment;
count = count + 1;
if((GetSenderRef() == doorL) || (GetSenderRef() == doorR))
{
if(playing == 0)
{
playing = 1;
Call doorLine;
}
}
return;
# ========================================================================================
openDoors:
doorsMoving = 1;
doorsOpen = 1;
SetCollideType(doorL, 0);
SetCollideType(doorR, 0);
SectorAdjoins(doorSector, 1);
PlaySoundThing(sndOpen, doorR, 0.75, 10.0, 20.0, 0);
Sleep(0.01);
PlaySoundThing(sndOpen, doorL, 0.75, 10.0, 20.0, 0);
MoveToFrame(doorL, 1, 2.0);
MoveToFrame(doorR, 1, 2.0);
WaitForStop(doorL);
doorsMoving = 0;
return;
# ========================================================================================
closeDoors:
doorsMoving = 1;
PlaySoundThing(sndClose, doorR, 0.75, 10.0, 20.0, 0);
Sleep(0.01);
PlaySoundThing(sndClose, doorL, 0.75, 10.0, 20.0, 0);
MoveToFrame(doorL, 0, 1.6);
MoveToFrame(doorR, 0, 1.6);
WaitForStop(doorL);
SectorAdjoins(doorSector, 0);
SetCollideType(doorL, 3);
SetCollideType(doorR, 3);
doorsOpen = 0;
doorsMoving = 0;
return;
# ========================================================================================
doorLine:
# do cutscene stuff
MakeMeStop();
StartCutscene(0);
# offset camera and nudge the door
SetExtCamOffset('0.1 0.0 0.065');
# put away any weapon
DeselectWeaponWait(player);
PlayMode(player, 60, 0);
Sleep(0.3);
# player never activated door in PYR
if(global12 == 0)
{
PlayVoice(player, fireSafety, 1.0, 1);
global12 = 1;
}
# player activated door in PYR
else if(global12 == 1)
{
if(count == 5)
{
count = 0;
PlayVoice(player, fireSafety, 1.0, 1);
}
else
{
PlayVoice(player, in_Line0[newComment], 1.0, 1);
}
}
RestoreExtCam();
ClearActorFlags(player, 0x200000);
EndCutscene();
playing = 0;
return;
# ========================================================================================
blocked:
Print("blocked");
Call openDoors;
return;
# ========================================================================================
end